<?php
/**
 * 尝试载入数据库配置文件，如果失败则显示错误页面
 */
$configFilename = '_Shared/DSN.php';
if (!is_readable($configFilename)) {
    header('Location: ../../Install/setup-required.php');
}

/**
 * 载入 FleaPHP，并作初始化
 */
define('NO_LEGACY_FLEAPHP', true);
require('FLEA/FLEA.php');
// APP_DIR 常量指示模版的保存目录
define('APP_DIR', dirname(__FILE__));
// UPLOAD_DIR 常量用于指示保存上传文件的根目录
define('UPLOAD_DIR', realpath(APP_DIR . '/upload'));
// UPLOAD_ROOT 常量用于指示用什么 URL 路径访问上传目录
define('UPLOAD_ROOT', 'upload');
/**
 * 指定实际代码的路径，FleaPHP 之所以能自动找到 Controller 目录和 Model 目录下的类，
 * 全靠这里指定路径。
 */
FLEA::import(dirname(__FILE__) . '/APP');

/**
 * 指定数据库连接设置，TableDataGateway 会自动取出 dbDSN 设置来连接数据库。
 * FLEA::loadAppInf() 会用开发者指定的应用程序设置覆盖 FleaPHP 提供的默认设置。
 * 开发者可以使用 FLEA::getAppInf() 取出任意应用程序设置。
 */
FLEA::loadAppInf($configFilename);
//FLEA::setAppInf('urlMode', URL_PATHINFO);

$appInf = array(
    'dispatcher' => 'FLEA_Dispatcher_Auth',

	'dispatcherAuthFailedCallback' => 'onDispatcherFailedCallback',
    // 指示总是使用全小写的控制器名和动作名
    'urlLowerChar' => true,
    // 指定该应用程序使用的数据表的前缀
    'dbTablePrefix' => '',
    'urlLowerChar'      => false,
    // 指定使用 Smarty 模板引擎
    'view' => 'FLEA_View_Smarty',
    'viewConfig' => array(
        'smartyDir'         => realpath(APP_DIR . '/Stuff/Smarty'),
        'template_dir'      => APP_DIR . '/templates',
        'compile_dir'       => APP_DIR . '/templates_c',
        'left_delimiter'    => '{{',
        'right_delimiter'   => '}}',
    ),
     'webControlsExtendsDir' => APP_DIR . '/APP/WebControls',
   /**
     * 上传目录和 URL 访问路径
     */
    'uploadDir' => UPLOAD_DIR,
    'uploadRoot' => UPLOAD_ROOT,

    /**
     * 缩略图的大小、可用扩展名
     */
    'thumbWidth' => 166,
    'thumbHeight' => 166,
    'thumbFileExts' => 'gif,png,jpg,jpeg',
    'voiceFileExts' => 'wav,mp3,vav,mpeg',

    /**
     * 商品大图片的最大文件尺寸和可用扩展名
     */
    'photoMaxFilesize' => 1000 * 1024,
    'photoFileExts' => 'gif,png,jpg,jpeg',
    'defaultScore'  => 1500,

    /**
     * 使用默认的控制器 ACT 文件
     *
     * 这样可以避免为每一个控制器都编写 ACT 文件
     */
    'defaultControllerACTFile' => APP_DIR . DS . 'APP/Config/DefaultACT.php',
    /**
     * 必须设置该选项为 true，才能启用默认的控制器 ACT 文件
     */
    'autoQueryDefaultACTFile' => true,
    'RBACSessionKey'  => 'vvdict',

    'responseCharset' => 'utf-8',
    'databaseCharset' => 'utf8',
);
FLEA::loadAppInf($appInf);

/**
 * FLEA::runMVC() 根据 URL 地址实例化指定的 Controller 类，调用指定的 Action 方法
 */
FLEA::runMVC();
function onDispatcherFailedCallback($controllerName, $actionName)
{
    js_alert('你的权限不够','history.back();');
    // redirect(url(null, null, array('requestUri' => $_SERVER['REQUEST_URI'])));
}
